package com.seguriapp.services;

import java.util.List;

import com.seguriapp.entities.Complaint;
import com.seguriapp.entities.CrimeCategory;
import com.seguriapp.entities.MediaContent;
import com.seguriapp.util.CriminalItem;
import com.seguriapp.util.SearchFilterEntity;

/**
 * Complaint Service
 * 
 * @author Tania Gonzales (taniadgv@gmail.com)
 */
public interface ComplaintService {

  Long saveComplaint(Complaint complaint);

  Complaint findComplaintById(Long complaintId);

  void saveMediaContent(MediaContent mediaContent);

  List<CriminalItem> getCriminalActivityMap(double lontigude, double latitude);

  List<Complaint> listComplaintsOrderByDate();

  void setComplaintVisibility(Long complaintId, boolean visible);

  List<CriminalItem> getCriminalActivityMap(List<Long> mapOptions, int zoomLevel, int deviceType, int allResults);

  List<Complaint> listComplaintsOrderByColumn(SearchFilterEntity searchFilter);

  long getComplaintsTotalPages(SearchFilterEntity searchFilter);

  List<MediaContent> getComplaintMediaContentList(Long complaintId);

  List<CrimeCategory> getCrimeCategoryList();

  void saveMediaContent(Long complaintId, String fileType, String fileName);

  String changeComplaintVisibility(Complaint complaint);

  List<Complaint> getCriminalActivityMap(List<Long> crimeCategories);

}
